The present invention relates generally to methods and systems for coding metadata in multimedia files.
Many electronic devices have the ability to record media such as still images, video, audio, or a combination thereof, to storage devices. To assist operators in managing the stored media, the electronic device may mark media files with different types of information, such as metadata. For example, the electronic device may provide a date and time indicating when the video was recorded. Other metadata may include data representing shutter speed, F/stop, GPS coordinates, text/caption data for one or more languages, among others. The metadata may be stored in a “metadata track,” a serial information stream in the media file that is distinct from but multiplexed in the file with other serial information streams, including audio and/or video data.
The types and content of the metadata may vary from file to file. Generally, the different types of metadata are declared in a header of the metadata track by metadata declarations. The coding protocols do not provide for declarations of metadata outside of the metadata header. Thus, if new types of metadata became available for a media file after creation of the media file had started, it could not be added to the media file without aborting creation of the file and restarting it. If multiple types of metadata were encountered in a single media item, creation of the media file would have to recur each time a new metadata type is encountered, and this would significantly increase the processing time and the recording time of the media data. And, while it may be possible to declare all possible metadata types in metadata header, doing so would add significant overhead to the metadata track thereby increasing its size, and it would be inefficient because it likely would declare metadata types that may not be used in the media file.
Thus, there may be a need for an improved way of organizing metadata in media files that may flexibly handle new metadata types on-the-fly without adding significant overhead size to the metadata track and without adding significant processing and recording time.